/*
* Thread中常用的方法：
	1、start（）；启动当前线程；调用当前线程的run（）
	2、run()；同参需要重写Thread类中的此方法，将创建的线程要执行的操作声明在此方法中
	3、currentThread（）；静态方法，返回执行当前代码的教程
	4、getName（）；获取当前线程的名字
	5、setName（）；设置当前线程的名字
	6、yield（）；
* */

public class ThreadMethodTest {
    public static void main(String[] args) {
        //给线程命名，通过构造器命名
        ThreadMethod t1 = new ThreadMethod("子线程-1");
        //给线程命名，通过setName（）方法命名
        //t1.setName("子线程：1");
        t1.start();

        //给主线程命名
        Thread.currentThread().setName("主线程-1");
        for (int i = 0; i < 10; i++) {
            if (i % 2 != 0) {
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
            if (i==7){
                try {
                    t1.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println(t1.isAlive());
    }
}

class ThreadMethod extends Thread {
    public ThreadMethod(String name){
        super(name);
    }
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) {
                try {
                    sleep(10);//当前执行的线程阻塞1s。sleep参数单位为ms（毫秒）
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }
    }
}